object LoopConditionDemo extends App{
  //罚款规则：每天0.5元，最多不超过图书价格的30%
  val bookPrice = 50.0  //图书价格
  val maxFineRate = 0.3 //最大罚款比例
  val maxFine = bookPrice * maxFineRate //最大罚款金额
  val dailyFine = 0.5 //每天罚款金额

  //模拟输入超期天数（实际应用中可改为用户输入）
  var overDays = 25 //超期天数
  var totalFine = 0.0

  //合理设计的循环条件：避免无限循环
  while (overDays > 0 && totalFine < maxFine) {
    //计算当天罚款（不超过剩余可罚款金额）
    val fineForDay = math.min(dailyFine , maxFine - totalFine)
    totalFine += fineForDay
    overDays -= 1
    println(f"已计算1天罚款：$fineForDay%.2f元，累计：剩余超期天数：$overDays")
  }
  //输出结果
  if(totalFine >= maxFine) {
    println(f"\n已到达最大罚款金额（$maxFine%.2f元），停止计算")
  }else {
    println(s"\n所有超期天数已计算完毕")
  }
  println(f"最终罚款金额：$totalFine%.2f元")
}
